import axios from 'axios';

const cancelTokenSource = axios.CancelToken.source();

// axios.defaults.withCredentials = false;

// 创建axios实例
const NologinHttp = axios.create({
  // timeout: 1000 * 60 * 3,
  // withCredentials: true,
  //需要注意是，当配置了xhr.withCredentials = true时，必须在后端增加 response 头信息Access-Control-Allow-Origin，且必须指定域名，而不能指定为*。
  // baseURL: `${process.env.API_HOST}/api`,
  baseURL: `http://localhost:3000`,
  // cancelToken: cancelTokenSource.token,
});
NologinHttp.interceptors.request.use(
  (config) => {
    config.headers['Content-Type'] = 'application/json';
    config.data = JSON.stringify(config.data);
    console.warn('--- NologinHttp request start ---');
    console.log(config.method, config.url);
    console.log(config.data || config.params);
    console.warn('--- NologinHttp request end---');
    return config;
  },
  (error) => {
    console.error(error);
  },
);
NologinHttp.interceptors.response.use(
  (response) => {
    const data = response.data;
    // 打印结果
    console.error('--- NologinHttp response start ---');
    console.log(response.config);
    console.log(response.config.url);
    console.log(response.data);
    console.error('--- NologinHttp response end ---');
    return data;
  },
  (error) => {
    console.info('网络异常');
    return Promise.reject(error);
  },
);

export default NologinHttp;
